서포트 벡터 머신(Support Vector Machine, SVM)은 감독 학습 알고리즘의 일종으로, 주로 분류와 회귀 분석에 사용된다. 이 알고리즘은 데이터 포인트 간의 최대 마진을 찾는 것을 목표로 하며, 고차원 공간에서 클래스의 경계를 정의하는 초평면을 결정한다.
SVM의 기본 아이디어는 서로 다른 클래스에 속하는 데이터 포인트들 간의 경계를 명확히 하여, 새로운 데이터 포인트가 주어졌을 때 적절한 클래스를 예측할 수 있도록 하는 것이다. 이를 위해 SVM은 각 클래스에 가장 가까운 데이터 포인트인 서포트 벡터(support vector)를 사용한다. 서포트 벡터는 결정 경계에 직접적으로 영향을 미치며, 이들로부터 최대한 멀리 떨어진 초평면을 찾는 것이 SVM의 핵심이다.
SVM은 선형적으로 분리 가능한 데이터 뿐만 아니라, 비선형 데이터에 대해서도 효과적으로 사용할 수 있다. 비선형 문제의 경우 커널 트릭(kernel trick)을 적용하여 데이터 포인트를 고차원으로 사상(mapping) 함으로써, 선형 경계를 찾아 분류할 수 있다. 일반적인 커널 함수로는 다항 커널, 가우시안 RBF(Radial Basis Function) 커널 등이 있다.
SVM의 학습 과정에서는 비용 함수로서 정규화 파라미터 C와 최대 마진을 고려한다. C는 분류 오류를 허용하는 정도를 조정하며, C의 값이 크면 더 정확한 분류를 추구하게 되고, 값이 작으면 더 일반화된 모델을 선호하게 된다.
서포트 벡터 머신은 다양한 분야에서 활용되며, 특히 텍스트 분류, 이미지 인식, 생물정보학 등에서 효과적인 성능을 보인다. 그럼에도 불구하고 대규모 데이터셋에서의 학습 속도가 느리거나 메모리 사용량이 많을 수 있는 단점이 있다. 이러한 이유로 SVM을 사용할 때는 문제의 특성과 데이터의 양에 따라 적절한 파라미터 조정과 선택이 필요하다.